"""
字符串下标:
    所谓的下标就是指字符串的元素的索引(编号),每一个索引(编号)对应一个唯一的元素
    所有的下标均为整数,且连续,不可跳跃

    格式:
        字符串变量[索引] 根据索引获取字符串中指定位置的元素
"""

# 正数索引
str1 = '两个黄鹂叫喳喳.'
"""
两  个  黄  鹂  叫  喳  喳  .
0   1   2  3   4   5   6  7

注意: 正数索引从0开始,从左只有一次递增,连续不可跳跃,且每个元素对应唯一索引
"""

# 需求: 获取上述字符串中的黄字
print(str1[2])  # 黄

# 需求: 获取上述字符串中的叫字
print(str1[4])  # 叫

# 需求: 获取上述字符串中的最后一个元素
print(str1[7])  # . 无论是点还是空格都是一个单独的元素,占用一个索引值

# 思考: 如果使用的索引在字符串中不存在会怎样?
# IndexError: string index out of range 字符串索引超出范围后会报错
# print(str1[25])

print('--------------------------')
# 负数索引
str2 = '一行白鹭齐刷刷.'
"""
一  行  白  鹭  齐  刷  刷  .
-8 -7  -6  -5  -4  -3 -2  -1

注意: 负数索引从-1开始从右至左依次递减
"""
# 需求: 获取上述字符串中的白字
print(str2[-6])     # 白

# 需求: 获取上述字符串中的齐字
print(str2[-4])     # 齐

# 需求: 获取上述字符串中的最后一个元素
print(str2[-1])

# 负数索引超出范围后一样会报错
# IndexError: string index out of range
# print(str2[-25])

# 注意:
# 1.在字符串中左侧数据的索引一定小于右侧数据的索引.
# 2.我们一般使用时都是使用正数索引,当想要获取末尾数据时使用负数索引.
